
from pathlib import Path
from datetime import datetime

def find_image_files(target_subdir):
    current_date = datetime.now().strftime('%Y-%m-%d')
    target_dir = Path(r"C:\xq_pk_images") / current_date / target_subdir
    # 如果目标路径不存在，则创建
    if not target_dir.exists():
        target_dir.mkdir(parents=True, exist_ok=True)  # 修改此处
        print(f"目录 {target_dir} 不存在，已创建。")
    image_files = [
        str(file) for file in target_dir.iterdir()
        if file.suffix.lower() in {'.jpg', '.jpeg', '.png', '.gif', '.bmp'}
    ]
    print("文件夹", target_dir)
    print("找到的图片文件：", image_files)
    # ['C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\0_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\0_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\10_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\10_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\1_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\1_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\2_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\2_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\3_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\3_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\4_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\4_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\5_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\5_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\6_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\6_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\7_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\7_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\8_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\8_end.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\9_battle.png', 'C:\\xq_pk_images\\2025-07-16\\xqApp A6654\\9_end.png']
    # sorted_image_paths = sorted(
    #     image_files,
    #     key=lambda x: (
    #         int(Path(x).stem.split('_')[0]),  # 数字部分作为主排序键
    #         Path(x).stem.split('_')[1]  # 下划线后部分作为次排序键
    #     )
    # )
    sorted_image_paths = sorted(image_files, key=get_sort_key_v2)
    print("找到的图片文件 排序后", sorted_image_paths)
    return sorted_image_paths


def get_sort_key(filepath):
    filename = filepath.split('\\')[-1]  # 获取文件名
    # 检查是否有下划线
    if '_' in filename:
        parts = filename.split('_')
        num_part = parts[0] if parts[0].isdigit() else ''  # 确保是数字部分
        type_part = '_'.join(parts[1:])  # 处理可能的多段类型
        return int(num_part) if num_part else float('inf'), type_part
    else:
        # 没有下划线则按完整文件名排序
        return float('inf'), filename  # 保证无下划线的文件排在最后

def get_sort_key_v2(filepath):
    filename = filepath.split('\\')[-1]  # 获取文件名
    # 情况1：文件名包含下划线和数字（如 "10_battle.png"）
    if '_' in filename and filename.split('_')[0].isdigit():
        num_part = int(filename.split('_')[0])
        type_part = '_'.join(filename.split('_')[1:])  # 处理多段类型
        return 0, num_part, type_part  # 0 表示优先级最高（数字文件）
    # 情况2：文件名只有字母（如 "plainfile.png"）
    else:
        return 1, filename  # 1 表示优先级次之（纯字母文件）



def get_prefix_directory_pk(target_subdir):
    current_date = datetime.now().strftime('%Y-%m-%d')
    target_dir = Path(r"C:\xq_pk_images") / current_date / target_subdir
    return target_dir

def get_prefix_directory_sign(target_subdir):
    current_date = datetime.now().strftime('%Y-%m-%d')
    target_dir = Path(r"C:\xq_pk_images") / current_date / target_subdir / "sign_up"
    return target_dir



if __name__ == "__main__":
    # 调用函数并传入参数
    find_image_files("xqApp A6654")